package com.huike.report.service;

import com.huike.common.core.page.TableDataInfo;
import com.huike.report.domain.vo.*;
import org.apache.poi.ss.formula.functions.T;

import java.time.LocalDate;
import java.util.Date;
import java.util.List;

/**
 * @author STJ12138
 * @version 1.0
 * @description: TODO
 * @date 2023/7/13 9:21
 */
public interface ReportService {
    /** 
     * @description: 客户统计新增客户数报表 
     * @param: beginCreateTime
endCreateTime 
     * @return: com.huike.report.domain.vo.LineChartVo 
     * @author STJ12138
     * @date: 2023/7/13 9:29
     */
    LineChartVo contractStatisticsChart(String beginCreateTime, String endCreateTime);

    /** 
     * @description: 销售统计归属部门明细列表 
     * @param: beginCreateTime
endCreateTime 
     * @return: com.huike.common.core.page.TableDataInfo<java.util.List<com.huike.report.domain.vo.ReportSalesDeptStatisticsListDataVo>> 
     * @author STJ12138
     * @date: 2023/7/13 16:07
     */
    TableDataInfo<List<ReportSalesDeptStatisticsListDataVo>> deptStatisticsList(String beginCreateTime, String endCreateTime);

    /** 
     * @description: 销售统计归属人报表 
     * @param: beginCreateTime
endCreateTime 
     * @return: com.huike.common.core.page.TableDataInfo<java.util.List<com.huike.report.domain.vo.ReportSalesOwnerShipStatisticsListDataVo>> 
     * @author STJ12138
     * @date: 2023/7/13 16:08
     */
    TableDataInfo<List<ReportSalesOwnerShipStatisticsListDataVo>> ownerShipStatisticsList(String beginCreateTime, String endCreateTime);

    /** 
     * @description: 销售统计报表 
     * @param: beginCreateTime
endCreateTime 
     * @return: com.huike.report.domain.vo.LineChartVo 
     * @author STJ12138
     * @date: 2023/7/13 17:12
     */
    LineChartVo salesStatistics(String beginCreateTime, String endCreateTime);
    
    /** 
     * @description: 客户统计学科分布统计报表 
     * @param: beginCreateTime
endCreateTime 
     * @return: java.util.List<com.huike.report.domain.vo.ReportSubjectStatisticsDataVo> 
     * @author STJ12138
     * @date: 2023/7/13 17:33
     */
    List<ReportSubjectStatisticsDataVo> subjectStatistics(String beginCreateTime, String endCreateTime);

    /** 
     * @description: 线索统计线索转换率报表 
     * @param: beginCreateTime
endCreateTime 
     * @return: com.huike.report.domain.vo.VulnerabilityMapVo 
     * @author STJ12138
     * @date: 2023/7/13 18:58
     */
    VulnerabilityMapVo getVulnerabilityMap(String beginCreateTime, String endCreateTime);
}
